Cellular telephony has become a widely available mode of communication in modern society. Within the field of wireless telecommunications systems, there are a plurality of systems referred to as Code Division Multiple Access systems, otherwise known as CDMA. Examples are Wideband CDMA standards (WCDMA), comprising the sub-systems Time Division Duplex (TDD) and Frequency Division Duplex (FDD), Time Division Synchronous CDMA (TD-SCDMA)) and CDMA2000. These are commonly called modes of communication or transmission modes. Within the Code Division Multiple Access system, a user of a mobile station (e. g. handset) is able to communicate with a user of another telecommunication device by way of a base station. A mobile station and a base station of the Code Division Multiple Access system communicate via a wireless digital radio interface. The specifications of the wireless digital radio interfaces vary slightly in a plurality of different aspects. Further, within each specific radio interface, a plurality of transmission throughput characteristics may be available.
All of the above mentioned modes of communication systems use a turbo coding scheme, i.e. an iterative coding scheme. A turbo encoder at a transmitter comprises a first and a second recursive systematic coder (RSC) and an interleaver, which feeds the second RSC with interleaved data in order to increase the overall transmission robustness to noise. A turbo decoder at a receiver receives 2 to 5 soft data in dependence on the transmission mode and rate, and estimates the data in an iterative decoding process. The turbo decoder invokes a process which reverses the transformation performed by the encoder, and comprises two soft input—soft output (SISO) decoders that work cooperatively. Each SISO decoder produces a posteriori information which is used as a priori information by the other SISO decoder.
There is a need for a flexible solution that can deal with the different communication modes. At the same time, there is a need for a high-performance solution that is required for each of the above mentioned communication modes. In F. Berens, A. Worm, H. Michel, and N. Wehn, “Implementation Aspects of Turbo-Decoders for Future Radio Applications,” Proceedings of the IEEE Vehicular Technology Conference (VTC) Fall 1999, pp. 2601-2605, Amsterdam, September 1999 it is pointed out that a pure software implementation of a turbo decoder is below the requirements of high-rate data services, but gives high flexibility. On the other hand, hardware lacks flexibility, but gives superior performance. Therefore, a mixed hardware/software implementation is suggested in Berens et al. for combining the flexibility of a software solution and superior performance of a dedicated hardware implementation.
Still, there are a few problems to solve. The turbo decoder requires a complete block of soft input data to be able to perform the above described process, since the interleaver has to be able to access any data in this block. Therefore, a complete block has to be buffered before decoding processing of the block. The data need to be stored in respect of how the decoder core expects to read data from the buffer to be able to use the superior performance of a hardware implemented turbo decoder. A conventional solution, as used in any of the above mentioned transmission modes separately, relies on the system to reorder data. FIG. 1 shows a set-up of a conventional receiver 100 comprising a radio receiver 102, a sampler 104, and a decoder 106. The receiver is connected to a system bus 112, to which a memory 108 and a system controller 110 also are connected. The radio receiver comprises one or more antennas 114 and electronics (not shown) for processing radio-frequency signals received by the antennas 114. The radio receiver 102 outputs a demodulated signal corresponding to the received radio-frequency signal. The sampler 104 samples the demodulated signal to produce soft data, that is, a digital representation of the received information plus interference with more bits than needed for only representing the received information. The soft data is stored in the memory 108 under supervision of the system controller 110. The data is then reordered by the system controller 110. The data reordering is conventionally performed by software, and consumes a lot of system resources. The reordered data are then fed to a hardware implemented decoder buffer, e.g. the shared memory 108.
One drawback of this conventional structure is that reordering of soft samples in software consumes CPU power. Another drawback is that the system bus is not efficiently used in view of bandwidth. It is therefore a problem that reordering of soft samples consumes a large amount of system resources.